imx: imx_io_mux: Define an IO-mux layer
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Wed, 20 Jun 2018 15:56:31 +0000 (16:56 +0100)
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>
Tue, 4 Sep 2018 12:36:23 +0000 (13:36 +0100)
commit965bda4d4e846439df1baf91068d572f1b099c16
tree7b832dba44b9298e69b01374a1ca480114a922ba
parentddfb773fb0816c906ec76da963640b75ab9174bf
imx: imx_io_mux: Define an IO-mux layer

This patch defines:

- The full range of IO-mux register offsets relative to the base address of
  the IO-mux block base address.

- The bits for muxing the UART1 TX/RX lines.

- The bits for muxing the UART6 TX/RX lines.

- The pad control pad bits for the UART

Two functions are provided to configure pad muxes:

- void io_muxc_set_pad_alt_function(pad_mux_offset, alt_function)
  Takes a pad_mux_offset and sets the alt_function bit-mask supplied.
  This will have the effect of switching the pad into one of its defined
  peripheral functions. These peripheral function modes are defined in the
  NXP documentation and need to be referred to in order to correctly
  configure a new alternative-function.

- void io_muxc_set_pad_features(pad_feature_offset, pad_features)
  Takes a pad_feature_offset and applies a pad_features bit-mask to the
  indicated pad.
  This function allows the setting of PAD drive-strength, pull-up values,
  hysteresis glitch filters and slew-rate settings.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
plat/imx/common/imx_io_mux.c [new file with mode: 0644]
plat/imx/common/include/imx_io_mux.h [new file with mode: 0644]